package cn.mjnxin.iot.connector.context;

/**
 * 对端上下文
 * @author CLG 2023年10月10日
 * @version V1.0.0
 */
public interface IPeerContext extends IConnectorContext{
	/**
	 * Peer加入链接
	 * @param peerAddress
	 * @param pid
	 * @param gateAddress
	 */
	void addPeer(String peerAddress, Integer pid, String gateAddress);
	
	/**
	 * 收包过程中检查Peer是否需要变更链接
	 * @param peerAddress
	 * @param pid
	 * @param gateAddress
	 */
	void checkAndAddPeer(String peerAddress, Integer pid, String gateAddress);
	
	/**
	 * 将Peer移除链接
	 * @param  peerAddres
	 */
	void removePeer(String peerAddress);

	/**
	 * 将Peer断网
	 * @param peerAddress
	 */
	void closePeer(String peerAddress);

	/**
	 * 将对端移除踢出
	 * @param peerAddress
	 */
	void kickoutPeer(String peerAddress);

	/**
	 * 将对端断网
	 * @param peerAddress
	 * @param peerKey
	 */
	void unlinkPeer(String peerAddress, String peerKey);

    /**
     * @param peerAddress null表示清除
     */
    void setCurrentPeerAddress(String peerAddress);
}